/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controlador;

import BD.MyException;
import Clases.Categoria;
import DAO.DAOCategoria;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

/**
 *
 * @author ppr
 */
public class ControladorCategoria {

    private List<Categoria> categoria;

    public String guardarCategoria(Categoria cat) {
        if (DAOCategoria.cargarCategoria(cat)) {
            return "Categoria cargada";
        } else {
            return "No se pudo cargar la categoria";
        }
    }

    private boolean cargarCategorias() {
        try {
            categoria = DAOCategoria.getCategorias();
            return true;
        } catch (MyException e) {
            JOptionPane.showMessageDialog(null, "Se produjo un error.");
            return false;
        }
    }

    public DefaultTableModel modelCliente(TableModel modelo) {
        DefaultTableModel model = (DefaultTableModel) modelo;
        //////
        int filas = modelo.getRowCount();
        for (int i = 0; filas > i; i++) {
            model.removeRow(0);
        }
        //////
        if (this.cargarCategorias()) {
            for (Categoria cat : this.categoria) {
                String[] dato = {cat.getNombre(), cat.getDescripcion()};
                model.addRow(dato);
            }
        }
        return model;
    }

    public void agregarCategoria(Categoria categoria) {
        this.categoria.add(categoria);
    }

    public String modificarCategoria(int selectedRow, Categoria cat) {
        cat.setId_Categoria(this.categoria.get(selectedRow).getId_Categoria());

        if (DAOCategoria.modificarCategoria(cat)) {
            return "Categoria modificada";
        } else {
            return "No se pudo modificar la categoria";
        }
    }

    public String elimnarCategoria(int selectedRow) {
        Categoria cat = this.categoria.get(selectedRow);
        try {
            if (DAOCategoria.eliminarCategoria(cat)) {
                return "Categoria eliminada";
            } else {
                return "No se pudo eliminar la categoria";
            }
        } catch (MyException e) {
            if (e.toString().contains("LO DE EXISTEN RELACIONES"));
            return "Existen relaciones con tareas";
        }
    }
}
